草庐IT

c++ - SIMD C++ 库

全部标签

c++ - 如何在 C++ 绑定(bind)中使用不透明指针包装 C 库

我正在考虑用C++包装一些C库,但我不确定包装不透明指针的最佳方法是什么。当C语言结构是公共(public)API的一部分时typedefstruct_SomeType{inta;intb;}SomeType_t;有几个“成员”函数的地方:voidSomeTypeFoo(SomeType_t*obj,...);voidSomeTypeBar(SomeType_t*obj,...);我喜欢从基派生的方法,将这些“成员”函数简单地关联为实际的类成员。即:classSomeTypeWrapper:publicSomeType_t{voidfoo(...);voidbar(...);};就我的

c++ - 如何在haskell中封装对象的构造函数和析构函数

我有Haskell代码,它需要与C库接口(interface),有点像这样://MyObject.htypedefstructMyObject*MyObject;MyObjectnewMyObject(void);voidmyObjectDoStuff(MyObjectmyObject);//...voidfreeMyObject(MyObjectmyObject);原始FFI代码使用unsafePerformIO将所有这些函数包装为纯函数。这导致了错误和不一致,因为操作的顺序未定义。我正在寻找的是一种在Haskell中处理对象的通用方法,而无需求助于IO中的所有操作。最好是我可以做类

c++ - C stdio 字符编码

对于我的宠物项目,我正在试验字符串表示,但我得出了一些令人不安的结果。首先,这是一个简短的应用程序:#include#include#includevoidwrite_to_file(FILE*fp,constchar*c,size_tlen){void*t=(void*)c;fwrite(&len,sizeof(size_t),1,fp);fwrite(t,len,sizeof(char),fp);}intmain(){FILE*fp=fopen("test.cod","wb+");constchar*ABCDE="ABCDE";write_to_file(fp,ABCDE,strl

Python - ctypes - 如何调用函数和访问结构字段?

我有一个C库:smart_string.h:typedefstructSmartString{unsignedstring_len;unsignedalloc_len;char*str;char*str_terminator;}SmartString;SmartString*SmartString_new(char*str);...definitionsofmorefunctions...该实现位于名为smart_string.c的文件中。我需要一个指南来运行SmartString_new()函数并访问返回的结构指针的字段。谁能告诉我怎么做?谢谢! 最佳答案

c++ - 用于重复代码的 C/C++ 宏

有什么办法可以用宏重复一段C代码N次吗?N也是一个宏。例如,如果我有这个宏:#defineN5#defineCOODE"nop\n\t"#defineREPEAT[...]当我调用repeat时,预处理器写入CODEN次,所以__asm__(REPEAT);会变成__asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t");我有一个Arduino,它必须等待一个确切的(而且很小,大约10-15)个时钟。每个“nop”(无操作)只需要1个时钟周期来执行,它什么也不做。我不能只做一个循环,因为每个循环都在不止一个操作中执行(初始化计数器,递增

c++ - 用于 C++ 的 XML-RPC 库

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion哪些库可用于使用nativeC++或C编写xml-rpc客户端?

C# 和 C++ 库

我想知道我是否可以使用alibrary-用C++编写-在C#问题是图书馆有自己的结构和类..我可以在C#中使用它吗?谢谢编辑这个库是开源的..所以如果我的要求需要一些特殊的C++代码,我将能够做到... 最佳答案 您不能在托管代码中直接使用C++类。主要问题是无法使用与C++代码相同的内存分配器,并且无法轻松调用构造函数和析构函数。一位微软员工发布了ablogpost以表明这并非不可能。我不建议这样做。COM是一种解决方案,但总是需要相当大的重写和良好的COM编程技能。managedclasswrapper在C++/CLI语言中通常

c++ - 允许我的 C++ 库与 C 一起工作(减少函数集)

我一直想构建一个共享库,其中将利用类来保持其功能清洁(它可能需要很多输入或处理),尽管我仍然希望以C平台为目标。如果我在我的所有原型(prototype)上应用extern"C"{},并在示例中提供一组公开的函数来模仿类函数,这样对象就不需要“需要”来使用我的库,那些正常的函数会在将链接到它的C程序? 最佳答案 如果您按照您描述的方式创建一个dll,也就是说,所有接口(interface)都是extern"C"并且接口(interface)中的所有类型都是POD,那么是的,您在C或.NET中使用它几乎没有问题例子:classMyCl

c++ - gdb 无法进入 printf

这是我的示例程序:#includeintmain(){printf("hellogoodmorning\n");return0;}gcc-Wall-gtemp.c/opt/langtools/bin/gdba.outHPgdb3.3forPA-RISC1.1or2.0(narrow),HP-UX11.00.Copyright1986-2001FreeSoftwareFoundation,Inc.Hewlett-PackardWildebeest3.3(basedonGDB)iscoveredbytheGNUGeneralPublicLicense.Type"showcopying"to

c++ - 如何处理生成它的对象内部的 SIGPIPE 错误?

我有两个应用程序,一个服务器和另一个客户端,都是用C++和Qt编写的,但它们都使用C库,该库使用C套接字方法在它们之间执行套接字通信(这一切都在Linux中)。当它们都已连接并且我关闭客户端时,当服务器尝试向其发送新消息时,它收到SIGPIPE错误并关闭。我在网络和SO中做了一些研究,看看如何为SIGPIPE创建一个处理程序,而不是关闭应用程序,我会告诉不断发送信息的计时器停止。现在我确实学会了如何简单地处理信号:创建一个接收int的方法并在main()或全局中使用signal(SIGPIPE,myMethod)(注意:从SO中了解到,是的,我知道signal()已过时)。但问题是,通